package com.sky.task;

import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;

public class OPITask {

    public static void POITestWrite()throws Exception{
        //在内存中创建Excel文件
        XSSFWorkbook excel=new XSSFWorkbook();

        //在Excel文件创建一个sheet页
        XSSFSheet sheet=excel.createSheet("sheet1");

        //在sheet对象页中创建行 从0开始为第一行
        XSSFRow row1 = sheet.createRow(0);
        //在行上创建单元格，并写入单元格内容 单元格也是从0开始 所以1是第二个单元格
        row1.createCell(1).setCellValue("姓名");
        row1.createCell(2).setCellValue("城市");

        //创建第二行
        XSSFRow row2 = sheet.createRow(1);
        row2.createCell(1).setCellValue("张三");
        row2.createCell(2).setCellValue("北京");

        //创建第三行
        XSSFRow row3 = sheet.createRow(2);
        row3.createCell(1).setCellValue("李四");
        row3.createCell(2).setCellValue("湖北");


        //创建输出流
        FileOutputStream out = new FileOutputStream(new File("D:\\sheet1.xlsx"));
        //写入数据
        excel.write(out);

        //关闭输出流文件和excel文件
        excel.close();
        out.close();
    }

    public static void POITaskRead() throws Exception{
        FileInputStream in = new FileInputStream(new File("D:\\sheet1.xlsx"));

        //读取磁盘上的excel文件
        XSSFWorkbook excel = new XSSFWorkbook(in);

        //读取excel中第一个sheet页
        XSSFSheet sheet = excel.getSheetAt(0);

        //获取sheet中创建最后一行的行号
        int lastRowNum = sheet.getLastRowNum();

        //遍历行
        for (int i=0;i<=lastRowNum;i++){
            //获取对应行
            XSSFRow row = sheet.getRow(i);

            if(row!=null){
                //获取单元格内容
                String cellValue1 = row.getCell(1).getStringCellValue();
                String cellValue2 = row.getCell(2).getStringCellValue();
                System.out.println(cellValue1+" "+cellValue2);
            }
        }

        //关闭输入流
        in.close();
        //关闭excel
        excel.close();
    }

    public static void main(String[] args) throws Exception {
        //POITestWrite();
        POITaskRead();
    }
}
